package com.ruoyi.paper.service.impl;

import java.util.Date;
import java.util.List;

import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.user.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.paper.mapper.PaperMapper;
import com.ruoyi.paper.domain.Paper;
import com.ruoyi.paper.service.IPaperService;

/**
 * 论文主页数据内容Service业务层处理
 * 
 * @author moyu
 * @date 2023-03-07
 */
@Service
public class PaperServiceImpl implements IPaperService 
{
    @Autowired
    private PaperMapper paperMapper;

    /**
     * 查询论文主页数据内容
     * 
     * @param id 论文主页数据内容主键
     * @return 论文主页数据内容
     */
    @Override
    public Paper selectPaperById(Long id)
    {
        return paperMapper.selectPaperById(id);
    }

    /**
     * 查询论文主页数据内容列表
     * 
     * @param paper 论文主页数据内容
     * @return 论文主页数据内容
     */
    @Override
    public List<Paper> selectPaperList(Paper paper)
    {
        return paperMapper.selectPaperList(paper);
    }

    /**
     * 新增论文主页数据内容
     * 
     * @param paper 论文主页数据内容
     * @return 结果
     */
    @Override
    public int insertPaper(Paper paper)
    {
        return paperMapper.insertPaper(paper);
    }

    /**
     * 修改论文主页数据内容
     * 
     * @param paper 论文主页数据内容
     * @return 结果
     */
    @Override
    public int updatePaper(Paper paper)
    {
        return paperMapper.updatePaper(paper);
    }

    /**
     * 批量删除论文主页数据内容
     * 
     * @param ids 需要删除的论文主页数据内容主键
     * @return 结果
     */
    @Override
    public int deletePaperByIds(Long[] ids)
    {
        return paperMapper.deletePaperByIds(ids);
    }

    /**
     * 删除论文主页数据内容信息
     * 
     * @param id 论文主页数据内容主键
     * @return 结果
     */
    @Override
    public int deletePaperById(Long id)
    {
        return paperMapper.deletePaperById(id);
    }

    /**
     * 导入
     * @param paperList
     * @param updateSupport
     * @param operName
     * @return
     */
    @Override
    public String importPaper(List<Paper> paperList, boolean updateSupport, String operName) {
        if (StringUtils.isNull(paperList) || paperList.size() == 0)
        {
            throw new ServiceException("导入论文基本信息数据不能为空！");
        }

        int successNum = 0;
        int failureNum = 0;
        StringBuilder successMsg = new StringBuilder();
        StringBuilder failureMsg = new StringBuilder();
        //遍历
        for (Paper paper:paperList){
            //List<Paper> pl = paperMapper.selectPaperList(paper);
             List<Paper> pl =  paperMapper.selectPaperImport(paper);
            //论文不存在，存入数据库
            if (StringUtils.isNull(pl) || pl.size() == 0){
                int i = paperMapper.insertPaper(paper);
                if (i!=0) {
                    successNum++;
                }
            }else {
                failureNum++;
                System.out.println("失败数据====>"+paper);
            }
        }
        String Msg = "导入成功"+successNum+"条数据，失败了"+failureNum+"条数据";

        return Msg;
    }
}
